package datos;
import java.sql.*;
import java.util.ArrayList;

public class conexion{
	private Connection con;
	private PreparedStatement pst;

//	public static void main(String[] args)
//	{
//		String connectString = "jdbc:postgresql://127.0.0.1:5432/Veterinaria";
//		String user = "veterinaria";
//		String password = "veterinaria";
//
//		try{
//			Class.forName("org.postgresql.Driver");
//			Connection con = DriverManager.getConnection(connectString, user , password);
//			Statement stmt = con.createStatement();
//
//			ResultSet rs = stmt.executeQuery("SELECT * from tipo_mascota");
//
//			while (rs.next()){
//				System.out.println(rs.getString(1));
//			}
//
//			stmt.close();
//			con.close();
//
//		}
//
//		catch ( Exception e ){
//			System.out.println(e.getMessage());
//		}
//	}
	
	
	public Connection conectar(){
		String connectString = "jdbc:postgresql://127.0.0.1:5432/Veterinaria";
		String user = "postgres";
		String password = "veterinaria";

		try{
			Class.forName("org.postgresql.Driver");
			con = DriverManager.getConnection(connectString, user , password);
		} catch ( Exception e ){
			System.out.println(e.getMessage());
			con = null;
		}
		return con;
	}
	
public ArrayList<String> consulta(String sql) {
       // Declaracion en null del resultSet
//       System.out.println("Consulta : " + sql + "\n");
       try {
    	   ArrayList<String> retorno = new ArrayList<String>();
           // Para contar los registros
//           int registros = 0;
           // Preparo la sentencia sql a ejecutar
    	   con = conectar();
           pst = con.prepareStatement(sql);
           // Obtengo los datos de la consulta en un resultset
           ResultSet rs = pst.executeQuery();
           // Guardo los datos del ResultSet en un ResultSetMetadata para jugar
           // un poco mas
           
//           ResultSetMetaData rsm = rs.getMetaData();
//           // Obtengo los nombres de las columnas <img src="http://codesandtags.org/wp-includes/images/smilies/icon_biggrin.gif" alt=":D" class="wp-smiley">
//           for (int i = 1; i <= rsm.getColumnCount(); i++) {
//               System.out.print("" + rsm.getColumnName(i) + " | ");
//           }	
//           System.out.println("");
//           
//           while (rs.next()) {
//               for (int i = 1; i <= rsm.getColumnCount(); i++) {
//                   System.out.print(rs.getString(i) + " | ");
//                   retorno.add(rs.getString(i));
//               }
//               registros++;
//               System.out.println("");
//           }
//
//           System.out.println("\nCantidad de registros : " + registros);
//           System.out.println("------------------------------------------------- \n");
//           // Libero los datos del PreparedStatement, automaticamente tambien
//           // se libera el ResultSet
           pst.close();
           return retorno;
           
           
       } catch (SQLException e) {
           // Capturo la excepcion en caso de error
           e.printStackTrace();
           return null;
       }       
   }

public void desconectar() {
       try {
           // Cierro todas las conexiones con la base de datos
           // Automaticamente libero memoria y cierro las conexiones abiertas
           // en el objeto Connection
           con.close();
       } catch (Exception e) {
           // Controlo cualquier excepcion generada durante el cierre de la
           // conexion
           e.printStackTrace();
       }
   }
}